package main

import (
	"fmt"
)

/*
作业：
定义一些初始值：
username = "root"
passwd = "123456"
balance = 1000

实现一个简易的atm存取系统
1、登陆成功才能进入系统
    选择：
	1、存钱
	2、取钱 -- 注意取钱的金额不能大于它本身的金额
	3、查询余额
	4、退出整个系统
2、登陆失败有三次重试机会

把功能封装成函数
*/

func main() {
	username := "root"
	passwd := "123456"
	balance := 1000
	ba := &balance

	t := 0    //记录登录次数
	flag := 0 //是否登录成功
	choice := 0
	for t < 3 {
		if dl(username, passwd) {
			fmt.Println("登录成功!")
			flag = 1
			break
		} else {
			t--
			if t != 3 {
				fmt.Println("登录失败,请重新输入。")
			} else {
				fmt.Println("登录失败,重试机会已用完。")
			}
		}
	}
	for flag == 1 {
		fmt.Println("存钱请输入'1'")
		fmt.Println("取钱请输入'2'")
		fmt.Println("查询余额请输入'3'")
		fmt.Println("退出系统请输入'4'")
		fmt.Scan(&choice)
		if choice == 4 {
			flag = 0
			fmt.Println("退出成功!")
			break
		} else if choice == 1 {
			cq(ba)
		} else if choice == 2 {
			qq(ba)
		} else if choice == 3 {
			cx(ba)
		}
	}
}

func dl(username, passwd string) bool {
	var un, pw string
	fmt.Println("请输入用户名:")
	fmt.Scan(&un)
	fmt.Println("请输入密码:")
	fmt.Scan(&pw)
	if un == username && pw == passwd {
		return true
	}
	return false
}

func cq(ba *int) {
	var c int
	fmt.Println("请输入存款金额:")
	fmt.Scan(&c)
	*ba += c
	fmt.Println("存款成功!")
}

func qq(ba *int) {
	var q int
	fmt.Println("请输入取款金额:")
	fmt.Scan(&q)
	if q <= *ba {
		*ba -= q
		fmt.Println("取款成功!")
	} else {
		fmt.Println("余额不足,取款失败")
	}
}

func cx(ba *int) {
	fmt.Printf("当前余额为%d元", *ba)
}
